package gcp.gui;

import gcp.principal.FrameGCP;
import gcp.principal.GCP;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JInternalFrame;

/**
 * FrameUsuarioLogado<br>
 * Frame para acoes do usuario logado.
 * @author Catharine Quintans
 */
public class FrameUsuarioLogado extends JInternalFrame {

    private static final long serialVersionUID = 1L;

    private Container tela;
    private GCP gcp;
    private FrameGCP frameGCP;

    private JButton cadastrarAmigo, cadastrarGibi, cadastrarFilme,
            cadastrarJogo, cadastrarEmprestimo, sair;

    /**
     * Construtor padrão.
     */
    public FrameUsuarioLogado() {
        inicializar();
        posicoes();
        acoes();
        constroiTela();
    }

    /**
     * Inicializa os componentes.
     */
    private void inicializar() {
        setSize(600, 500);
        setClosable(true);
        tela = new Container();

        tela = getContentPane();
        tela.setLayout(null);

        gcp = new GCP();

        frameGCP = new FrameGCP();

        cadastrarAmigo = new JButton("Cadastrar Amigo");
        cadastrarGibi = new JButton("Cadastrar Gibi");
        cadastrarFilme = new JButton("Cadastrar Filme");
        cadastrarJogo = new JButton("Cadastrar Jogo");
        cadastrarEmprestimo = new JButton("Cadastrar Emprestimo");
        sair = new JButton("Sair");
    }

    /**
     * Define as acoes dos componentes.
     */
    private void acoes() {
        // O usuario sai do programa.
        sair.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                gcp.gravar();
                System.exit(0);
            }
        });
        // O usuario vai poder cadastrar amigos.
        cadastrarAmigo.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                frameGCP.abrirJanela(new FrameAmigo(frameGCP, null));
            }
        });
        // O usuario vai poder cadastrar gibis.
        cadastrarGibi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                frameGCP.abrirJanela(new FrameGibi(frameGCP, null));
            }
        });
        // O usuario vai poder cadastrar filmes.
        cadastrarFilme.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                frameGCP.abrirJanela(new FrameFilme(frameGCP, null));
            }
        });
        // O usuario vai poder cadastrar jogos.
        cadastrarJogo.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                frameGCP.abrirJanela(new FrameJogo(frameGCP, null));
            }
        });
        cadastrarEmprestimo.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                frameGCP.abrirJanela(new FramePegarEmprestado(frameGCP, null));
            }
        });
    }

    /**
     * Define a posicao dos componentes em tela.
     */
    private void posicoes() {
        cadastrarAmigo.setBounds(205, 110, 200, 25);
        cadastrarGibi.setBounds(205, 150, 200, 25);
        cadastrarFilme.setBounds(205, 190, 200, 25);
        cadastrarJogo.setBounds(205, 230, 200, 25);
        cadastrarEmprestimo.setBounds(205, 270, 200, 25);
        sair.setBounds(205, 310, 200, 25);
    }

    /**
     * Adiciona os componentes em tela.
     */
    private void constroiTela() {
        tela.add(cadastrarAmigo);
        tela.add(cadastrarGibi);
        tela.add(cadastrarFilme);
        tela.add(cadastrarJogo);
        tela.add(cadastrarEmprestimo);
        tela.add(sair);
    }
}